package alibaba.server.service;

import java.io.File;
import java.io.IOException;
import java.util.List;

import alibaba.common.CheckEntry;

public interface BackupService {
    
    public boolean init(String backupDirectory) throws IOException; // TODO ALON
    
    public boolean backupFileData(String user, String filePath, File file) throws IOException; // TODO DAN
    
    public boolean backupFileSignature(String user, String filePath, String signatureBase64) throws IOException; // TODO ALON
    
    public File restoreFile(String user, String filePath, int snapshotNumber); // TODO DAN
    
    public List<String> listDirectory(String user, String dirPath, int snapshotNumber); // TODO ALON
    
    public List<CheckEntry> check(String user, String path) throws IOException; // TODO DAN
    
    public byte[] getSignature(String user, String filePath, int snapshotNumber); // TODO ALON
    
    public boolean createSnapshot(String user, int snapshotNumber); // TODO DAN
    
    public boolean deleteSnapshot(String user, int snapshotNumber) throws IOException; // TODO ALON
    
}